# 导入时间模块
import time


# 装饰函数
def metric(fu):
    # 把run方法扩展功能之后的新方法
    def wrapper(*args, **kwargs):
        # 函数开始时间
        start = time.time()
        print(start)
        # 调用函数
        fu(*args, **kwargs)
        # 结束时间
        end = time.time()
        print(end)
        print('%s执行了%f 秒' % (fu.__name__, end - start))
        return fu(*args, **kwargs)

    # 回调装饰函数
    return wrapper


@metric
# 被装饰函数
def run():
    # 停顿 1 秒
    time.sleep(1)
    # 生成式
    l = [x ** 2 for x in range(10)]
    return l


print(run())
